package com.youzan.open.sdk.gen.v1_0_0.model;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import com.youzan.open.sdk.model.APIParams;
import com.youzan.open.sdk.model.FileParams;
import com.youzan.open.sdk.model.APIResult;
import com.youzan.open.sdk.model.ByteWrapper;
import java.util.List;
import java.util.Map;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonProperty;

public class YouzanTradeDcQueryQuerybyordernoResult implements APIResult {

    @JsonProperty(value = "orderNo")
    /**
     * 订单号
     */
    private String orderNo;
    @JsonProperty(value = "realDeliveryFee")
    /**
     * 实付运费
     */
    private Long realDeliveryFee;
    @JsonProperty(value = "remark")
    /**
     * 货单备注
     */
    private String remark;
    @JsonProperty(value = "distType")
    /**
     * 配送类型
     */
    private Long distType;
    @JsonProperty(value = "version")
    /**
     * 版本号
     */
    private Long version;
    @JsonProperty(value = "extend")
    /**
     * 扩展字段
     */
    private String extend;
    @JsonProperty(value = "deliveryMode")
    /**
     * 发货模式
     */
    private Long deliveryMode;
    @JsonProperty(value = "createTime")
    /**
     * 货单创建时间
     */
    private Long createTime;
    @JsonProperty(value = "deliveryPointType")
    /**
     * 出货点类型
     */
    private Long deliveryPointType;
    @JsonProperty(value = "deliveryOrderItems")
    /**
     * 发货单明细
     */
    private DeliveryOrderItemDTO[] deliveryOrderItems;
    @JsonProperty(value = "distOrderDTOs")
    /**
     * 配送单
     */
    private DistOrderDTO[] distOrderDTOs;
    @JsonProperty(value = "status")
    /**
     * 发货单状态
  WAIT_DELIVER(0, "待发货"),
  DELIVERED(1, "已发货"),
  NO_NEED_TO_DELIVER(2, "无需发货");
     */
    private Long status;

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getOrderNo() {
        return this.orderNo;
    }
    public void setRealDeliveryFee(Long realDeliveryFee) {
        this.realDeliveryFee = realDeliveryFee;
    }

    public Long getRealDeliveryFee() {
        return this.realDeliveryFee;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getRemark() {
        return this.remark;
    }
    public void setDistType(Long distType) {
        this.distType = distType;
    }

    public Long getDistType() {
        return this.distType;
    }
    public void setVersion(Long version) {
        this.version = version;
    }

    public Long getVersion() {
        return this.version;
    }
    public void setExtend(String extend) {
        this.extend = extend;
    }

    public String getExtend() {
        return this.extend;
    }
    public void setDeliveryMode(Long deliveryMode) {
        this.deliveryMode = deliveryMode;
    }

    public Long getDeliveryMode() {
        return this.deliveryMode;
    }
    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public Long getCreateTime() {
        return this.createTime;
    }
    public void setDeliveryPointType(Long deliveryPointType) {
        this.deliveryPointType = deliveryPointType;
    }

    public Long getDeliveryPointType() {
        return this.deliveryPointType;
    }
    public void setDeliveryOrderItems(DeliveryOrderItemDTO[] deliveryOrderItems) {
        this.deliveryOrderItems = deliveryOrderItems;
    }

    public DeliveryOrderItemDTO[] getDeliveryOrderItems() {
        return this.deliveryOrderItems;
    }
    public void setDistOrderDTOs(DistOrderDTO[] distOrderDTOs) {
        this.distOrderDTOs = distOrderDTOs;
    }

    public DistOrderDTO[] getDistOrderDTOs() {
        return this.distOrderDTOs;
    }
    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return this.status;
    }

    public static class DeliveryOrderItemDTO {
            @JsonProperty(value = "deliveryNo")
        /**
        * 货单号
        */
        private String deliveryNo;
            @JsonProperty(value = "orderNo")
        /**
        * 订单号
        */
        private String orderNo;
            @JsonProperty(value = "kdtId")
        /**
        * 店铺Id
        */
        private Long kdtId;
            @JsonProperty(value = "itemId")
        /**
        * 订单商品id
        */
        private Long itemId;
            @JsonProperty(value = "num")
        /**
        * 订单商品id
        */
        private Long num;
            @JsonProperty(value = "weight")
        /**
        * 发货商品数量
        */
        private Long weight;
            @JsonProperty(value = "deliveryStatus")
        /**
        * 商品发货状态
        */
        private Long deliveryStatus;
            @JsonProperty(value = "deliveryStatusDesc")
        /**
        * 商品发货状态描述
        */
        private String deliveryStatusDesc;
            @JsonProperty(value = "noNeedDeliveryReason")
        /**
        * 商品无需发货的原因
        */
        private String noNeedDeliveryReason;
    
            public void setDeliveryNo(String deliveryNo) {
            this.deliveryNo = deliveryNo;
        }

        public String getDeliveryNo() {
            return this.deliveryNo;
        }

            public void setOrderNo(String orderNo) {
            this.orderNo = orderNo;
        }

        public String getOrderNo() {
            return this.orderNo;
        }

            public void setKdtId(Long kdtId) {
            this.kdtId = kdtId;
        }

        public Long getKdtId() {
            return this.kdtId;
        }

            public void setItemId(Long itemId) {
            this.itemId = itemId;
        }

        public Long getItemId() {
            return this.itemId;
        }

            public void setNum(Long num) {
            this.num = num;
        }

        public Long getNum() {
            return this.num;
        }

            public void setWeight(Long weight) {
            this.weight = weight;
        }

        public Long getWeight() {
            return this.weight;
        }

            public void setDeliveryStatus(Long deliveryStatus) {
            this.deliveryStatus = deliveryStatus;
        }

        public Long getDeliveryStatus() {
            return this.deliveryStatus;
        }

            public void setDeliveryStatusDesc(String deliveryStatusDesc) {
            this.deliveryStatusDesc = deliveryStatusDesc;
        }

        public String getDeliveryStatusDesc() {
            return this.deliveryStatusDesc;
        }

            public void setNoNeedDeliveryReason(String noNeedDeliveryReason) {
            this.noNeedDeliveryReason = noNeedDeliveryReason;
        }

        public String getNoNeedDeliveryReason() {
            return this.noNeedDeliveryReason;
        }

        }

    public static class ExpressDetail {
            @JsonProperty(value = "expressCompanyName")
        /**
        * 物流公司名称
        */
        private String expressCompanyName;
            @JsonProperty(value = "expressProgressInfo")
        /**
        * 物流进度详情
        */
        private String expressProgressInfo;
            @JsonProperty(value = "expressStatus")
        /**
        * 物流状态
        */
        private String expressStatus;
            @JsonProperty(value = "com")
        /**
        * 物流公司编码
        */
        private String com;
    
            public void setExpressCompanyName(String expressCompanyName) {
            this.expressCompanyName = expressCompanyName;
        }

        public String getExpressCompanyName() {
            return this.expressCompanyName;
        }

            public void setExpressProgressInfo(String expressProgressInfo) {
            this.expressProgressInfo = expressProgressInfo;
        }

        public String getExpressProgressInfo() {
            return this.expressProgressInfo;
        }

            public void setExpressStatus(String expressStatus) {
            this.expressStatus = expressStatus;
        }

        public String getExpressStatus() {
            return this.expressStatus;
        }

            public void setCom(String com) {
            this.com = com;
        }

        public String getCom() {
            return this.com;
        }

        }

    public static class DistOrderItemDTO {
            @JsonProperty(value = "distId")
        /**
        * 配送单号
        */
        private String distId;
            @JsonProperty(value = "deliveryNo")
        /**
        * 货单号
        */
        private String deliveryNo;
            @JsonProperty(value = "orderNo")
        /**
        * 订单号
        */
        private String orderNo;
            @JsonProperty(value = "kdtId")
        /**
        * 店铺id
        */
        private Long kdtId;
            @JsonProperty(value = "itemId")
        /**
        * 订单明细id
        */
        private Long itemId;
            @JsonProperty(value = "num")
        /**
        * 数量
        */
        private Long num;
            @JsonProperty(value = "weight")
        /**
        * 重量
        */
        private Long weight;
    
            public void setDistId(String distId) {
            this.distId = distId;
        }

        public String getDistId() {
            return this.distId;
        }

            public void setDeliveryNo(String deliveryNo) {
            this.deliveryNo = deliveryNo;
        }

        public String getDeliveryNo() {
            return this.deliveryNo;
        }

            public void setOrderNo(String orderNo) {
            this.orderNo = orderNo;
        }

        public String getOrderNo() {
            return this.orderNo;
        }

            public void setKdtId(Long kdtId) {
            this.kdtId = kdtId;
        }

        public Long getKdtId() {
            return this.kdtId;
        }

            public void setItemId(Long itemId) {
            this.itemId = itemId;
        }

        public Long getItemId() {
            return this.itemId;
        }

            public void setNum(Long num) {
            this.num = num;
        }

        public Long getNum() {
            return this.num;
        }

            public void setWeight(Long weight) {
            this.weight = weight;
        }

        public Long getWeight() {
            return this.weight;
        }

        }

    public static class LocalDeliveryInfo {
            @JsonProperty(value = "distName")
        /**
        * 配送员姓名
        */
        private String distName;
            @JsonProperty(value = "distMobile")
        /**
        * 配送员手机号
        */
        private String distMobile;
            @JsonProperty(value = "distCompanyId")
        /**
        * 配送公司
        */
        private Long distCompanyId;
            @JsonProperty(value = "distCompanyName")
        /**
        * 配送公司名称
        */
        private String distCompanyName;
            @JsonProperty(value = "localDeliveryDetail")
        /**
        * 同城配送详情
        */
        private String localDeliveryDetail;
    
            public void setDistName(String distName) {
            this.distName = distName;
        }

        public String getDistName() {
            return this.distName;
        }

            public void setDistMobile(String distMobile) {
            this.distMobile = distMobile;
        }

        public String getDistMobile() {
            return this.distMobile;
        }

            public void setDistCompanyId(Long distCompanyId) {
            this.distCompanyId = distCompanyId;
        }

        public Long getDistCompanyId() {
            return this.distCompanyId;
        }

            public void setDistCompanyName(String distCompanyName) {
            this.distCompanyName = distCompanyName;
        }

        public String getDistCompanyName() {
            return this.distCompanyName;
        }

            public void setLocalDeliveryDetail(String localDeliveryDetail) {
            this.localDeliveryDetail = localDeliveryDetail;
        }

        public String getLocalDeliveryDetail() {
            return this.localDeliveryDetail;
        }

        }

    public static class DistOrderDTO {
            @JsonProperty(value = "orderNo")
        /**
        * 订单号
        */
        private String orderNo;
            @JsonProperty(value = "distId")
        /**
        * 配送单id
        */
        private String distId;
            @JsonProperty(value = "kdtId")
        /**
        * 店铺id
        */
        private Long kdtId;
            @JsonProperty(value = "deliveryType")
        /**
        * 发货类型
        */
        private Long deliveryType;
            @JsonProperty(value = "deliveryNo")
        /**
        * 发货单号
        */
        private String deliveryNo;
            @JsonProperty(value = "deliveryPointId")
        /**
        * 出货点id
        */
        private Long deliveryPointId;
            @JsonProperty(value = "extend")
        /**
        * 扩展字段
        */
        private String extend;
            @JsonProperty(value = "localDeliveryInfo")
        /**
        * 同城送配送信息
        */
        private LocalDeliveryInfo localDeliveryInfo;
            @JsonProperty(value = "distOrderItems")
        /**
        * 配送单明细
        */
        private DistOrderItemDTO[] distOrderItems;
            @JsonProperty(value = "status")
        /**
        * 配送单状态
 NON_DELIVERY("NonDeliver", 0, "未发货"),
  DELIVERING("delivering", 1, "发货中"),
  DELIVERED("delivered", 2, "已发货"),
  CANCELED("canceled", 3, "已取消");
        */
        private Long status;
            @JsonProperty(value = "expressInfo")
        /**
        * 物流快递信息
        */
        private ExpressInfo expressInfo;
    
            public void setOrderNo(String orderNo) {
            this.orderNo = orderNo;
        }

        public String getOrderNo() {
            return this.orderNo;
        }

            public void setDistId(String distId) {
            this.distId = distId;
        }

        public String getDistId() {
            return this.distId;
        }

            public void setKdtId(Long kdtId) {
            this.kdtId = kdtId;
        }

        public Long getKdtId() {
            return this.kdtId;
        }

            public void setDeliveryType(Long deliveryType) {
            this.deliveryType = deliveryType;
        }

        public Long getDeliveryType() {
            return this.deliveryType;
        }

            public void setDeliveryNo(String deliveryNo) {
            this.deliveryNo = deliveryNo;
        }

        public String getDeliveryNo() {
            return this.deliveryNo;
        }

            public void setDeliveryPointId(Long deliveryPointId) {
            this.deliveryPointId = deliveryPointId;
        }

        public Long getDeliveryPointId() {
            return this.deliveryPointId;
        }

            public void setExtend(String extend) {
            this.extend = extend;
        }

        public String getExtend() {
            return this.extend;
        }

            public void setLocalDeliveryInfo(LocalDeliveryInfo localDeliveryInfo) {
            this.localDeliveryInfo = localDeliveryInfo;
        }

        public LocalDeliveryInfo getLocalDeliveryInfo() {
            return this.localDeliveryInfo;
        }

            public void setDistOrderItems(DistOrderItemDTO[] distOrderItems) {
            this.distOrderItems = distOrderItems;
        }

        public DistOrderItemDTO[] getDistOrderItems() {
            return this.distOrderItems;
        }

            public void setStatus(Long status) {
            this.status = status;
        }

        public Long getStatus() {
            return this.status;
        }

            public void setExpressInfo(ExpressInfo expressInfo) {
            this.expressInfo = expressInfo;
        }

        public ExpressInfo getExpressInfo() {
            return this.expressInfo;
        }

        }

    public static class ExpressInfo {
            @JsonProperty(value = "expressNo")
        /**
        * 物流单号
        */
        private String expressNo;
            @JsonProperty(value = "expressId")
        /**
        * 物流公司id
        */
        private Long expressId;
            @JsonProperty(value = "expressDetail")
        /**
        * 快递发货->物流详情
        */
        private ExpressDetail expressDetail;
    
            public void setExpressNo(String expressNo) {
            this.expressNo = expressNo;
        }

        public String getExpressNo() {
            return this.expressNo;
        }

            public void setExpressId(Long expressId) {
            this.expressId = expressId;
        }

        public Long getExpressId() {
            return this.expressId;
        }

            public void setExpressDetail(ExpressDetail expressDetail) {
            this.expressDetail = expressDetail;
        }

        public ExpressDetail getExpressDetail() {
            return this.expressDetail;
        }

        }


}